package main.sort;

/**
 * Created by july on 2016/1/1.
 * 选择排序：
 *  设数组长度为N。第一次，用第0个位置上的数据和后面的每一个数据比较，如果比后面的大就交换下标，
 *  这样经过一轮比较后最小的值会排在第0个位置上，接着从第一个位置开始和后面的比较依此类推，
 *  经过N-1次比较排序完成。
 */
public class SelectSort {
    public static void main(String[] args) {
        int[] unSorted  = {10,23,32,2,45,6,77,65,27,8};
        select(unSorted);
        for(int i:unSorted){
            System.out.print(i + " ");
        }
        System.out.print("\n");
    }

    private static void select(int[] unSorted) {
        int loopCount = 0,swapCount = 0;
        for(int i=0;i<unSorted.length;i++){
            int min = i;
            for(int j= i+1;j<unSorted.length;j++){
                if(unSorted[min] > unSorted[j]){
                    min = j;
                }
                loopCount++;
            }
            if(i != min){
                int temp = unSorted[i];
                unSorted[i] = unSorted[min];
                unSorted[min] = temp;
                swapCount++;
            }
        }
        System.out.println("循环次数：" + loopCount);
        System.out.println("交换次数：" + swapCount);
    }
}
